#!/usr/bin/python
# -*-coding:UTF-8 -*-

# ========================
# @Time  : 2021/3/3
# @Author: Sunny
# ========================

"""
进程之间通信：使用队列
multiprocessing和queue模块的Queue有什么区别
multiprocessing.Queue: 可以多个进程之间共用(通讯)

queue.Queue模块只能在一个进程中多个线程使用
"""

from multiprocessing import Process,Queue



def work1(q):
    for i in range(5000):
        n = q.get()
        n+=1
        q.put(n)
        print('work1结束的时候n的值：',n)



def work2(q):
    for i in range(5000):
        n = q.get()
        n+=1
        q.put(n)
        print('work2结束的时候n的值：', n)




if __name__ == '__main__':
    q = Queue()
    q.put(100)  #对象要当参数传进去

    p1 = Process(target=work1,args=(q,))
    p2 = Process(target=work2,args=(q,))

    p1.start()
    p2.start()

    p1.join()
    p2.join()

    print('n的值为',q.get())